package cn.wuxun.newstype.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import cn.wuxun.common.pojo.NewsType;
import cn.wuxun.common.vo.NewsUIResult;
import cn.wuxun.common.vo.SysResult;
import cn.wuxun.newstype.service.NewsTypeService;

/**
 * 
 * @author 新闻信息 类型的管理
 *
 */
@RestController
@RequestMapping("page/manage")
public class NewsTypeController {
	@Autowired
	private NewsTypeService newsTypeService;
	
	/**
	 * @return
	 * 新闻类型页面查看
	 * 后台接收 page/manage/queryAllTypes
	 * 请求方式 Get
	 * 请求参数 
	 * 返回数据 将查询到的结果封装到list中，进行遍历查看
	 */
	@RequestMapping("queryAllTypes")
	public List<NewsType> queryAllTypes(){
		return newsTypeService.queryAllTypes();
	}
	
	
	/**
	 * @param ntid
	 * @return
	 * 查询单个新闻类型
	 * 后台接收 page/manage/queryNewsType/{ntids}
	 * 请求方式 Get
	 * 请求参数 路径中的String ntid
	 * 返回数据 NewsType
	 */
	@RequestMapping("queryNewsType/{ntid}")
	public NewsType queryNewsTypeById(@PathVariable String ntid) {

		return newsTypeService.queryNewsType(ntid);
	}

	/**
	 * @param newsType
	 * @return
	 * 添加新闻类型
	 * 后台接收 page/manage/addNewsType
	 * 请求方式 Post
	 * 请求参数 NewsType newsType
	 * 返回数据 返回SysResult对象的json,其结构:
	 * Integer status; 200表示成功,其他表示失败
 	 * String msg;成功返回 “ok”,失败返回其他信息
	 * Object data;根据需求携带其他数据
	 */
	@RequestMapping("addNewsType")
	public SysResult addNewsType(NewsType newsType) {
		// 使用异常信息来表示成功和失败
		try {
			newsTypeService.addNewsType(newsType);
			// 没有异常出现,返回ok
			return SysResult.ok();
		} catch (Exception e) {
			e.printStackTrace();
			return SysResult.build(201, "添加新闻失败", null);
		}
	}

	/**
	 * @param ntid
	 * @return
	 * 删除新闻类型
	 * 后台接收 page/manage/delNewsType
	 * 请求方式 Post
	 * 请求参数 String ntid
	 * 返回数据 SysResult
	 */
	@RequestMapping("delNewsType")
	public SysResult delNewsTypeById(String ntid) {
		// 使用异常信息来表示成功和失败
		try {
			newsTypeService.delNewsTypeById(ntid);
			// 没有异常出现,返回ok
			return SysResult.ok();
		} catch (Exception e) {
			e.printStackTrace();
			return SysResult.build(201, "删除新闻失败", null);
		}
	}

	/**
	 * @param newsType
	 * @return
	 * 修改新闻类型
	 * 后台接收 page/manage/updateNewsType
	 * 请求方式 Post
	 * 请求参数 NewsType newsType
	 * 返回数据 SysResult
	 */
	@RequestMapping("updateNewsType")
	public SysResult updateNewsType(NewsType newsType) {
		// 使用异常信息来表示成功和失败
		try {
			newsTypeService.updateNewsType(newsType);
			// 没有异常出现,返回ok
			return SysResult.ok();
		} catch (Exception e) {
			e.printStackTrace();
			return SysResult.build(201, "删除新闻失败", null);
		}
	}
}
